The present invention relates to set-top boxes of the type used in consumer/home applications for processing audio/video signals, including signals provided by cable and, more particularly, to a hardware/firmware organization that allows for a reduction in memory requirements and a consequent savings in cost.
Set-top boxes (STB) are a common electronic device in many homes and are used to process televisions signals provided, for example, from a cable, into various consumer devices, particularly television sets. In general, set-top boxes include signal processing devices to process the particular digital (and/or analog) audio and/or video signals, one or more microprocessors that handle supervisory and control functions, and one or more volatile and non-volatile memories designed to store short-term and long-term information. The microprocessors are controlled by firmware that includes control sequences and sub-sequences for all the functions provided by the set-top box.
FIG. 1 illustrates, in schematic form, the general architecture of a known set-top box STB manufactured by the Sony Corporation of Tokyo, Japan for the processing of digital television (DTV) signals. The set-top box STB includes a DTV board DTVB that includes, among other devices, a microprocessor DTV μp and an associated non-volatile memory DTV MEM that stores various user settings and other operating parameters. Additionally, the set-top box STB includes a front-panel board FPB that includes a register FP REG for recording or otherwise storing user command key presses, and, like the DTV board, includes a microprocessor FP μp and associated non-volatile memory FP MEM. Lastly, the set-top box STB includes a front-end board FEB that includes a board-specific microprocessor FE μp and a tuner and a down-converter. As shown in generic dotted-line illustration, data and control busses/lines interconnect the various boards. In the particular implementation shown, each microprocessor is run or operated by its own firmware and effects control of its own board-specific functions. Thus, the microprocessor DTV μp on the DTV board DTVB is under the control of a DTV application DTV APPLN, the microprocessor FP μp on the front-panel board FPB is under the control of a front-panel program FP PGM, and, lastly, the microprocessor FE μp on the front-end board FEB is under the control of a front-end program FE PGM. In addition to their specific application program, each microprocessor includes a boot-up or initialization routine that runs or executes when electrical power is initially supplied to the microprocessor. The boot-up sequence can automatically invoke the desired application or invoke the application in response user initiated command or key press.
The set-top box STB described above in relationship to FIG. 1 has a “power-down” sequence, as shown in FIG. 2, and a “power-up” sequence, as shown in FIG. 3.
As shown in FIG. 2, the “power-down” sequence is invoked in response to a user-command. The firmware includes a sequence that waits for a user-command interrupt. The user-command interrupt can occur in response to a button press on the set-top box STB or a button press on a ‘remote’ unit (not shown) associated with the set-top box STB. Once a user-command interrupt is detected, a query determines whether or not the command is a ‘power-down’ command. If the interrupt is not a ‘power-down’ command, the application processes that command or request and returns to its wait state to again wait for another command interrupt. Conversely, if the interrupt is a ‘power-down’ command, the DTV application notifies the front-panel board FPB to force the DTV board DTV into its reset mode and, either concurrently therewith or shortly thereafter, sets a variable in the non-volatile memory FP MEM on the front-panel board FPB indicative of the running/not-running state to the “not-running” state. The DTV board DTVB is then concurrently or shortly thereafter forced into its reset mode by the front-panel board FPB. Thus, the power-down sequence shown in FIG. 2 is effective to both store a “not-running” value or flag in the non-volatile memory FP MEM on the front-panel board FPB and also force the DTV board DTVB into its reset mode in response to a ‘power-down’ user-command.
As can appreciated, the power-down sequence does not occur in the event of an unintentional power interruption, i.e., a power failure or inadvertent removal of the power plug from the wall outlet. As a consequence of an unintentional power-down, the running/not-running variable remains set in its running state.
The power-up sequence for the physical architecture of FIG. 1 is shown in FIG. 3. As shown, power is supplied to the set-top box STB with the front-panel board program FP PGM thereafter reading its non-volatile memory FP MEM in order to recover the running/not-running variable. The subsequent query determines whether or not the DTV board DTVB was running or not-running on the last power-down or power interruption. In the event the DTV board DTVB was ‘running’, the front-panel board FPB takes the DTV board DTVB out of reset; the microprocessor DTV μp on the DTV board DTVB runs its boot-up sequence and then starts the DTV application DTV APPLN on the DTV board DTVB. Conversely, if the DTV board DTVB was ‘not-running’, the front-panel board FPB waits for a user-command interrupt in the form of a button press on the set-top box STB or its remote. If a command interrupt is detected and that command interrupt is a “power-on” command, the front-panel board FPB sets the “running/not-running” variable to its “running” state in its non-volatile memory FP MEM. Concurrently therewith or shortly thereafter, the DTV board DTVB is taken out of reset which then starts the DTV application DTV APPLN on the DTV board DTVB.
The architecture of FIG. 1 thus utilizes the non-volatile memory FP MEM on the front-panel board FPB as part of the power-down/power-up sequence; a cost benefit can be realized if the architecture thereof can be reorganized to eliminate the need for the non-volatile memory FP MEM on the front-panel board FPB.